package com.boost.tjvm.oom;

import java.util.ArrayList;
import java.util.List;

/**
 * jdk 1.6 以后版本的jdk 此方法将一直会执行下去，因为常量池已经异步到了 java堆中。
 *
 * 如下请在jdk6 环境执行
 * java 方法区 运行常量池 内存溢出
 * -XX:PermSize=10M -XX:MaxPermSize=10M
 * PermSize 初始容量 MaxPermSize 最大容量
 */
public class RunTimeConstantPoolOOM {

    public static void main(String [] args){
        //使用list保持着常量池的引用，避免Full GC回收常量池的行为
        List<String> list=new ArrayList<>();
        int i=0;
        while (true){
            list.add(String.valueOf(i++).intern());
        }
    }
}
